/**
 * 用户认证相关模块
 */
import request from '@/utils/request'

// 规范User的数据格式
export interface IUser {
  user: {
    username: string
    email: string
    password: string
  }
}

export interface IRegisterData {
  user: {
    email: string
    token: string
    username: string
    bio: string
    image: string
  }
}

// 用户注册 (data:User): 指定方法的参数类型(这个类型包含参数和参数的类型)
// Promise<RegisterData>: async方法的返回值是一个Promise泛型,在<>指定泛型内的数据类型传递给Promise
export const register = async (data: IUser): Promise<IRegisterData> => {
  const res = await request({
    method: 'POST',
    url: '/api/users',
    data
  })
  return res.data
}
// 用户登录 (data:User): 指定方法的参数类型(这个类型包含参数和参数的类型)
export const login = async (data: IUser): Promise<IRegisterData> => {
  const res = await request({
    method: 'POST',
    url: '/api/users/login',
    data
  })
  return res.data
}
